Cloud-based connectivity information discovery

ABSTRACT

A method includes detecting a change in connectivity information for a mobile device. The connectivity information allows another device to connect to the mobile device at least while the mobile device is wirelessly connected to a network. In response to the change in connectivity information for a mobile device, performing an update with a service provider to indicate the change in connectivity information. Another method includes receiving an update from a first electronic device, where the update indicates one or more changes in connectivity information for the first electronic device. The method includes updating one or more second electronic devices with changed connectivity information of the first electronic device. Another method includes receiving from a service provider an update of changed connectivity information for a first electronic device for which a second electronic device is subscribed at the service provider for updates to connectivity information for the first electronic device.

CROSS REFERENCE TO RELATED APPLICATIONS

This is a divisional patent application of U.S. patent application Ser.No. 13/417,482, filed Mar. 12, 2012, the disclosure of which isincorporated by reference herein in its entirety.

TECHNICAL FIELD

This invention relates generally to wireless communications and, morespecifically, relates to mobile devices able to use multiple SIM(subscriber identity module) cards, devices changing IP addresses, anddevices having other connectivity information.

BACKGROUND

This section is intended to provide a background or context to theinvention disclosed below. The description herein may include conceptsthat could be pursued, but are not necessarily ones that have beenpreviously conceived, implemented or described. Therefore, unlessotherwise explicitly indicated herein, what is described in this sectionis not prior art to the description in this application and is notadmitted to be prior art by inclusion in this section.

A subscriber identity module (SIM) is an integrated circuit thatsecurely stores information to authenticate subscribers for carriers onmobile, wireless devices (such as mobile phones and computers). Suchinformation can include, e.g., the International Mobile SubscriberIdentity (IMSI).

Many mobile devices allow multiple SIM cards to be used. Such SIM cardscould be, e.g., prepaid, pay as you use, or associated with a contractwith an operator. Typically, each SIM card is associated with a singleoperator. This means for mobile devices allowing use of multiple SIMcards, for switching between SIM cards, operators are also switched.Switching operators entails a corresponding switch in phone numbers andIP (internet protocol) addresses for the mobile device, and may entailswitching other connectivity information such as email addresses.

Because a switch in operators causes a corresponding switch in phonenumbers to a new phone number, anyone trying to call the original phonenumber (before the switch in SIM cards) will not reach the new phonenumber, as the SIM card corresponding to that old phone number is nolonger in use. Similarly, anyone trying to reach the mobile device usingthe original IP address of the mobile device (before the switch in SIMcards) will not be able to reach the mobile device, as the original IPaddress is no longer valid for the mobile device. Thus, certain P2P(peer-to-peer) applications will no longer function correctly.

It is also possible, for instance in the case of a software (SW) SIM orembedded SIM, that the SIM can allow for multiple operators to be servedwith the same SIM. That is, multiple IMSIs and perhaps correspondingphonebook numbers can be held in the same SIM. However, this does notchange the problems described above, as anyone trying to reach a newphone number or mobile IP address caused by a change in operator for asingle SIM allowing multiple operators to be selected still will not beable to reach the new phone number or IP address.

Thus, while allowing users to use multiple SIMs has benefits, switchingbetween SIMs causes the problem that the users who switch between SIMsare no longer reliably reachable. This problem exists for every userusing multiple SIM cards: How does one reliably reach someone who usesmultiple SIMs?

SUMMARY

The examples in this section are merely illustrative and should not beconstrued as being limiting.

In an exemplary embodiment, a method is disclosed that includes thefollowing: detecting a change in connectivity information for a mobiledevice, the connectivity information allowing another device to connectto the mobile device at least while the mobile device is wirelesslyconnected to a network; and in response to the change in connectivityinformation for a mobile device, performing an update with a serviceprovider to indicate the change in connectivity information.

An apparatus is disclosed that includes means for detecting a change inconnectivity information for a mobile device, the connectivityinformation allowing another device to connect to the mobile device atleast while the mobile device is wirelessly connected to a network; andmeans, in response to the change in connectivity information for amobile device, for performing an update with a service provider toindicate the change in connectivity information.

In a further exemplary embodiment, a computer program product isdisclosed that includes a computer-readable storage medium bearingcomputer program code embodied therein for use with a computer. Thecomputer program code includes the following: code for detecting achange in connectivity information for a mobile device, the connectivityinformation allowing another device to connect to the mobile device atleast while the mobile device is wirelessly connected to a network; andcode for, in response to the change in connectivity information for amobile device, performing an update with a service provider to indicatethe change in connectivity information.

In an additional exemplary embodiment, an apparatus is disclosed thatincludes one or more processors and one or more memories includingcomputer program code. The one or more memories and the computer programcode are configured, with the one or more processors, to cause theapparatus to perform at least the following: detecting a change inconnectivity information for a mobile device, the connectivityinformation allowing another device to connect to the mobile device atleast while the mobile device is wirelessly connected to a network; andin response to the change in connectivity information for a mobiledevice, performing an update with a service provider to indicate thechange in connectivity information.

In another exemplary embodiment, a method is disclosed that includes thefollowing: receiving an update from a first electronic device, where theupdate indicates one or more changes in connectivity information for thefirst electronic device, the connectivity information allowing secondelectronic devices to connect to the first electronic device at leastwhile the first electronic device is wirelessly connected to a network;and updating one or more second electronic devices with changedconnectivity information of the first electronic device.

In a further exemplary embodiment, an apparatus is disclosed thatincludes means for r receiving an update from a first electronic device,where the update indicates one or more changes in connectivityinformation for the first electronic device, the connectivityinformation allowing second electronic devices to connect to the firstelectronic device at least while the first electronic device iswirelessly connected to a network; and means for updating one or moresecond electronic devices with changed connectivity information of thefirst electronic device.

An additional exemplary embodiment is a computer program productincluding a computer-readable storage medium bearing computer programcode embodied therein for use with a computer. The computer program codeincludes the following: code for receiving an update from a firstelectronic device, where the update indicates one or more changes inconnectivity information for the first electronic device, theconnectivity information allowing second electronic devices to connectto the first electronic device at least while the first electronicdevice is wirelessly connected to a network; and code for updating oneor more second electronic devices with changed connectivity informationof the first electronic device.

An exemplary apparatus includes one or more processors and one or morememories including computer program code. The one or more memories andthe computer program code are configured, with the one or moreprocessors, to cause the apparatus to perform at least the following:receiving an update from a first electronic device, where the updateindicates one or more changes in connectivity information for the firstelectronic device, the connectivity information allowing secondelectronic devices to connect to the first electronic device at leastwhile the first electronic device is wirelessly connected to a network;and updating one or more second electronic devices with changedconnectivity information of the first electronic device.

In an additional exemplary embodiment, a method includes: receiving froma service provider an update of changed connectivity information for afirst electronic device for which a second electronic device issubscribed at the service provider for updates to connectivityinformation for the first electronic device, the receiving occurring atthe second electronic device, the connectivity information allowingsecond electronic devices to connect to the first electronic device atleast while the first electronic device is wirelessly connected to anetwork; and attempting, at the second electronic device, to contact thefirst electronic device using at least some of the changed connectivityinformation.

In another exemplary embodiment, an apparatus is disclosed that includesmeans for receiving from a service provider an update of changedconnectivity information for a first electronic device for which asecond electronic device is subscribed at the service provider forupdates to connectivity information for the first electronic device, thereceiving occurring at the second electronic device, the connectivityinformation allowing second electronic devices to connect to the firstelectronic device at least while the first electronic device iswirelessly connected to a network; and means for attempting, at thesecond electronic device, to contact the first electronic device usingat least some of the changed connectivity information.

A further exemplary embodiment includes a computer program productincluding a computer-readable storage medium bearing computer programcode embodied therein for use with a computer. The computer program codeincludes: code for receiving from a service provider an update ofchanged connectivity information for a first electronic device for whicha second electronic device is subscribed at the service provider forupdates to connectivity information for the first electronic device, thereceiving occurring at the second electronic device, the connectivityinformation allowing second electronic devices to connect to the firstelectronic device at least while the first electronic device iswirelessly connected to a network; and code for attempting, at thesecond electronic device, to contact the first electronic device usingat least some of the changed connectivity information.

Another exemplary embodiment is an apparatus including one or moreprocessors and one or more memories including computer program code. Theone or more memories and the computer program code are configured, withthe one or more processors, to cause the apparatus to perform at leastthe following: receiving from a service provider an update of changedconnectivity information for a first electronic device for which asecond electronic device is subscribed at the service provider forupdates to connectivity information for the first electronic device, thereceiving occurring at the second electronic device, the connectivityinformation allowing second electronic devices to connect to the firstelectronic device at least while the first electronic device iswirelessly connected to a network; and attempting, at the secondelectronic device, to contact the first electronic device using at leastsome of the changed connectivity information.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of example embodiments of the presentinvention, reference is now made to the following descriptions taken inconnection with the accompanying drawings in which:

FIG. 1 is a block diagram of an exemplary system in which the exemplaryembodiments may be practiced;

FIG. 1(a) is a continuation of FIG. 1;

FIG. 2 is a block diagram illustrating activities to initiate updatingof connectivity information;

FIG. 3 is a block diagram of a flowchart performed by a mobile device toupdate connectivity information;

FIG. 4 is a block diagram of a flowchart performed by a cloud serviceprovider to receive, store, and distribute updated connectivityinformation;

FIG. 5 is a block diagram of a flowchart performed by a device tosubscribe to changes in a friend's connectivity information and to useupdated connectivity information;

FIGS. 6 and 7 are block diagrams of flowcharts to attempt to contact afriend by accessing a cloud service provider for updated connectivityinformation of the friend;

FIG. 8 is a block diagram of a flowchart performed by a device to useother connectivity information instead of the currently activeconnectivity information to contact friend X;

FIG. 9 is an example of an electronic device with a prompt on a touchscreen; and

FIG. 10 is an example of a block diagram of a flowchart performed by adevice to use preferences for operators for both a user and a user'sfriend.

DETAILED DESCRIPTION OF THE DRAWINGS

Before proceeding with additional descriptions of problems contactingmobile devices used by friends, reference is made to FIG. 1 andFIG.1(a), which show a block diagram of an exemplary system in which theexemplary embodiments may be practiced. In this example, the electronicdevice (ED) 190 would benefit from being able to contact the MD (mobiledevice) 110. Users of both devices have a relationship with the cloudservice provider 160, which may be a social networking provider. In FIG.1, a MD (mobile device) 110 is in wireless communication with a network100-1 via a corresponding wireless link 111-1. The user equipment 110includes one or more processors 120, one or more memories 125, and oneor more transceivers 130 interconnected through one or more “buses” 127.The one or more transceivers 130 are connected to one or more antennas128. The one or more memories 125 include computer program code 123. Theone or more memories 125 and the computer program code 123 areconfigured to, with the one or more processors 120, cause the userequipment 110 to perform one or more of the operations as describedherein. Also shown in this example is a SIM card 135-x, which isillustrated as having both a memory 125 and a processor 120. Additionaldescription concerning the SIM card 135-x is presented below.

The UE 110 communicates with an E-UTRAN (evolved-UTRAN) or UTRAN(universal terrestrial radio access network) 140-1 via link 111-1 andvia one or more antennas 158-1. The E-UTRAN/UTRAN 140-1 connects to acore network 145-1 through a link 136-1. Both the E-UTRAN/UTRAN and thecore network 145-1 are operated by Operator 1 in this example.

The core network 145-1 connects to the cloud 165, which is a networktypically including the Internet. Also connected to (or part of) thecloud 165 is the cloud service provider 160, interconnected with thecloud 165 via link 152. The cloud service provider 160 includes one ormore processors 175, one or more memories 171, and one or more networkinterfaces (N/W I/F(s)) 180, all interconnected through one or more“buses” 185. The term “buses” herein is to be interpreted broadly, toinclude hardwired, wireless, optical, and other communicationmechanisms, including networks. The processors 175, memories 171, andnetwork interfaces 180 may be distributed (e.g., across multiplecomputers). The one or more memories 171 include computer program code173. The one or more memories 171 and the computer program code 173 areconfigured to, with the one or more processors 175, cause the cloudservice provider 160 to perform one or more of the operations asdescribed herein. The one or more network interfaces 180 allow the cloudservice provider 160 to communicate with and through the cloud 165 tothe MD 110 and the ED 190.

The ED 190 comprises one or more processors 170, one or more memories195, one or more transceivers 189, and one or more network interfaces(N/W I/F(s)) 191, all interconnected through one or more “buses” 177. Asabove, the term buses should be broadly construed. The one or morememories 195 include computer program code 188. The one or more memories195 and the computer program code 188 are configured to, with the one ormore processors 170, cause the ED 190 to perform one or more of theoperations as described herein. The electronic device 190 may alsocomprise one or more SIM cards. The example of FIG. 2 shows SIM cards138-1 through 138-y being available.

In one embodiment, the ED 190 includes antenna(s) 178 that are used tocommunicate over wireless link 111-2 with the network 100-2, includingan E-UTRAN/UTRAN 140-2 (with antenna(s) 158-2), link 136-2, and corenetwork 145-2, all of which are operated in this example by Operator 2.The core network 145-2 communicates with the cloud 165 using the link147-2 and communicates with the E-UTRAN/UTRAN 140-2 using the link136-2. In another embodiment, the ED 190 can communicate using a wiredconnection 193, e.g., an Internet connection, to an Internet serviceprovider (ISP) 194 that is connected to the cloud 165 via the link147-2.

The illustration of the electronic device 190 being connected toOperator 2 while the mobile device 110 is connected to Operator 1 ismerely one example. Both electronic device 190 and mobile device 110 maybe connected to the same operator. In terms of the cloud serviceprovider 160, the example used herein mainly relates to electronicsystems operating a social networking service. However, the cloudservice provider 160 may be thought of as a SIM operator, and can be anysuitable electronic system as long as phone number information is knownand can be given or configured to be known in, e.g., a social networkingservice.

The computer readable memories 125, 171, and 195 may be of any typesuitable to the local technical environment and may be implemented usingany suitable data storage technology, such as semiconductor based memorydevices, flash memory, magnetic memory devices and systems, opticalmemory devices and systems, fixed memory and removable memory. Thecomputer readable memories 125, 171, and 195 may implement a computerreadable storage medium, as part of a program product, and may be usedto contain code for performing operations. The processors 120, 175, and170 may be of any type suitable to the local technical environment, andmay include one or more of general purpose computers, special purposecomputers, microprocessors, digital signal processors (DSPs) andprocessors based on a multi-core processor architecture, as non-limitingexamples.

In general, the various embodiments of the mobile device 110 mayinclude, but are not limited to, smart phones, cellular mobile devices,personal digital assistants (PDAs) having wireless communicationcapabilities, portable computers having wireless communicationcapabilities, image capture devices such as digital cameras havingwireless communication capabilities, gaming devices having wirelesscommunication capabilities, music storage and playback appliances havingwireless communication capabilities, Internet appliances permittingwireless Internet access and browsing, as well as portable units orterminals that incorporate combinations of such functions. The ED 190may also include all of these embodiments, but may also includewired-only or a combination of wired and wireless embodiments.

Returning now to additional descriptions of problems contacting mobiledevices used by friends, if the user of the mobile device 110 changesthe SIM card from SIM card 135-1 (not shown in FIG. 1 but shown in FIG.2) to SIM card 135-x, this changes the operator for the mobile device110, the phone number for the mobile device 110, and likely will changethe IP (Internet protocol) address. Without direct contact from the userof mobile device 110 to electronic device 190, the user using electronicdevice 190 can no longer contact the mobile device 110 using thepreviously valid phone number and mobile IP address for the mobiledevice 110.

This problem is not widely technically solved yet. For example, in Indiapeople are sending SMSs (short message service messages) to friends thatthey changed their SIM cards for cheaper calls. In some cases, there arecall forwarding from multi-SIM cards by the operators, but when peopleare using prepaid or multiple operator SIM cards, call forwarding by anoperator does not work. Also, informing a current active IP address toothers is not globally solved.

Exemplary embodiments of the instant invention solve the problem ofdiscovering the right phone number a friend is using at the momentanother friend creates a call. This may be performed by receivingautomatic updates of changes to phone numbers or querying the up-to-dateinformation from the cloud service provider 160. Also, this innovationsolves the problem of discovering the IP address for a mobile device.Furthermore, the innovation may be used for any connectivity informationof a mobile device 110, where connectivity information is anyinformation allowing another user to connect to the mobile device 110,at least when the mobile device 110 is operating wirelessly. Anotherpossible example of connectivity information is email addresses, whichmay change if these addresses are provided by the provider of thewireless service.

Turning to FIG. 2, this figure is a block diagram illustratingactivities to initiate updating of connectivity information. In thisexample, the user of mobile device 110 has the option to select one ofthe SIM cards 135-1 through 135-x. The user may change the SIM card 135,e.g., by physically replacing one SIM card 135 with another SIM card135, or by using software (e.g., as part of computer program code 123)for switching between SIM cards 135 on multiple SIM devices. In theexamples that follow, changing the SIM card 135 is assumed to change thephonebook (pb) number and the IP address for the mobile device 190,however, this need not be the case.

In the example of FIG. 2, the user of mobile device 110 is “Me (friendX)” and the user of mobile device 190 is “My Friend”. The user of themobile device 110 changes (shown as operation 1 ) the SIM card to SIMcard x (SIMx) 135-x. This causes a change from an original phone number(e.g., 225-2 or 225-3) to a current phone number 231, operated byOperator 1 (indicated by indication 232). The IP address also changes(operation 2 ) to 192.168.1.2 (IP address 233). It is noted the mobiledevice 110 may receive a new IP address due to the SIM change or forother reasons, such as the user getting back to a network after beingoffline.

The user of mobile device 190 subscribes (operation 3) to the changes toconnectivity information of “friend x” using the cloud 165 (and cloudservice provider 160). The mobile device 110 updates (operation 4) theconnectivity information for the mobile device 110 to the cloud 165 (andto the cloud service provider 160). The updating occurs responsive tothe change in SIM card 135 or to a change in the IP address 233 (orboth). In this example, the mobile device 110 updates using the SIMxindicator 234, the phonebook (pb or PB) number 231, indication 232 ofOperator 1, and IP address 233. Although each SIM 135 has acorresponding unique SIM indicator 234, a clever user interface (e.g.,executed by one or more processors 120) is typically needed to determinethe correct phone number for the phone as getting phone number from theSIM card 135 is not guaranteed as implementation of physical SIMs can bedifferent and not all are implemented by the SIM specification with allfeatures of the specification.

The cloud service provider 160 (in the cloud 165 or connected thereto)then updates a database 217 (stored in memories 171) including entry215-1, which is updated to include the SIMx indicator 220-1, thephonebook number 1 (225-1), an indication 235-1 of the Operator 1, whichcorrespond to the updated SIMx indicator 234, the phonebook number 231,indication 232 of Operator 1, respectively. The entry 215-1 furtherincludes the current mobile IP address 230, which corresponds to theupdated IP address 233. In one embodiment, only the currently activedata is stored. Furthermore, not all of this data need be stored in thedatabase 217. For instance, the phonebook number 225-1 may be stored asa minimum, or the mobile IP address 230-1 stored as a minimum, or boththe phonebook number 225-1 and the mobile IP address 230-1 stored as aminimum. Storing SIM indicators 220 can be important in someimplementations, because, as stated above, the phone number is notalways guaranteed to be able to be retrieved from or using the SIM, butother identifiers are able to be retrieved. That way, the list of SIMsthat the user has is able to be sent into a social network cloud (e.g.,cloud 165). Thu user of the mobile device 110 may update (operation 4 inFIG. 2) the SIM phone number in the social network (e.g., operated bycloud service provider 160) with a browser or the user interface (UI) inthe mobile device 110 may perform the update (operation 4 in FIG. 2).

Pass through of information can be used if the originator can send themobile phone number at the same time. That is, as stated above, thephone number is not always guaranteed to be able to be retrieved fromthe SIM 135, but other identifiers are able to be retrieved. That way,the system can create the list of SIMs that a user has by placing theSIMs into the social network cloud (e.g., cloud 165) and either updateSIM phone number in the social network with a browser (e.g., executed bythe one or more processors 120) or the user interface (also executed bythe one more processors 120) in the mobile can be programmed to do so.

Pass through of information can be used if the originator (e.g., theuser using mobile device 110) can send the mobile phone number at thesame time. That is, the cloud service provider may not need, in someimplementations, to store the information but instead can simply “passthrough” the update (operation 4 in FIG. 2) to the electronic devices190. However, pass through may be less beneficial than storage (e.g.,and subsequent access by electronic devices 190), as users of theelectronic devices 190 may not be logged into the service (and thereforenot receive an update) or may not have their device turned on oraccessible when the update (operation 5 in FIG. 2) is to be performed.In order to distinguish users, the database entries 215 may beassociated with a name and/or identity 291 of the user.

In another example, previously active phonebook numbers and operatorsare also stored, as shown in entries 215-2 and 215-3. Entry 215-2 storespreviously active SIMy indicator 220-2, corresponding to phonebooknumber 2 (225-2) and indication 235-2 of the Operator 2. Similarly,entry 215-3 stores previously active SIMz indicator 220-3, correspondingto phonebook number 3 (225-3) and indication 235-3 of the Operator 3.This example might be used if the user of mobile device 110 has multipleSIM cards 135, which would allow simpler updating. For instance, themobile device 110 could simply send the indication 234 of the SIM card(assuming this SIM card has been used), and the cloud service provider160 would therefore select the appropriate active connectivityinformation based thereon.

Responsive to receiving the update (operation 4), the cloud serviceprovider 160 then sends updates (operation 5 ) to all of the “friends”of the user of mobile device 110. In the example of FIG. 2, the mobiledevice 190 receives the update indicating that Friend X has hadconnectivity information updated. The mobile device 190 stores theupdated information in the phonebook 290. In one example, only theactive information is stored, and the mobile device 190 selects orpopulates the entry 240-1 with the phonebook (PB) number (No.) 1 250-1(corresponding to phonebook number 225-1) and may also receive and storethe corresponding indication 255-1 of Operator 1 (corresponding toindication 235-1), and also populates the phonebook 290 with the activemobile IP address 260 (corresponding to mobile IP address 230). Onereason the operator information might be useful is if the user of themobile device 190 also uses that operator and there are cheaperperson-to-person calls or data transfers from that operator when bothdevices 110/190 use that operator. That is, the user of the mobiledevice 190 could change SIM cards in the mobile device 190 in order toconnect to the mobile device 110 using the same operator as used by themobile device 110.

In an additional exemplary embodiment, the mobile device 190 storesadditional entries 240-2 and 240-3 for previously active phonebooknumbers 250-2, 250-3 (respectively) and corresponding indications 255-2,255-3 of Operators 2, 3 (respectively). Again, this embodiment could beused to select a currently active entry 240, as indicated by theindicator 261.

In a further exemplary embodiment, the update in operation 4 may includepreference(s) 293, which in this example are Operator 1 (OP 1), Operator1 (OP 2), and Operator 3 (OP 3), in order from most preferred (OP 1) toleast preferred (OP 3). The mobile device 190 may also have a preference294 of a preferred operator (OP 2 ). These preferences may adjust theorder and possibly override the order in which connectivity informationsuch as phone numbers are used by the mobile device 190 when the mobiledevice 190 attempts to contact the mobile device 110. This is explainedin more detail below in reference to FIG. 10.

It should be noted that only a single mobile IP address 233/230/260 isactive at a time and no previously active mobile IP addresses are kept.This is because mobile IP addresses are assumed to be dynamic and it isassumed even if the same operator assigns, at different times, twomobile IP addresses to the mobile device 110, it is likely the twomobile IP addresses will be different. However, if the mobile device 110can have the same mobile IP address assigned by the same operator, thenmultiple previously active mobile IP addresses could be stored, e.g., inentries 215-2, 215-3, 240-2, and 240-3.

Thus, for users of mobile devices 110 who have multiple SIM cards (e.g.,prepaid cards), and where the users are either physically changing orswitching with software their currently active SIM cards, correspondingconnectivity information is updated to the cloud, where in an examplenames (291) of the users and SIM card information with, e.g., phonebooknumbers are stored. At the same time, my friend, who is registered tochanges happening in the cloud for the user, gets updates of thecurrently active phonebook number of the mobile device 110. This way,friend X does not miss any calls (or other communications), from his orher friends, as the mobile devices 190 of the friends know automaticallywhich phonebook number (e.g., or mobile IP address) can be used to reachthe user at the time a call (or other communication) is initiated.

It is noted that this system could operate so that if the user of mobiledevice 110 is at work the user could use the mobile device 110 to updatethe status of the user to “at work”, and the mobile device could updatethe cloud 165 with the work phone number of the user (and then friendstrying to call the user would use the work phone number). In thisembodiment, SIM indicator 220 might not be used for the work phonenumber (or associated with the SIM indicator 220 are phone book numbersfor both the mobile device 110 and the work phone, and the user of theelectronic device 190 could be given the option to call either the phonenumber of the mobile device 110 or the work phone number. Someembodiments have a “phonebook-less” (e.g., on the electronic device 190)version, where mobile device 190 sends a message to the cloud toindicate that the mobile device 190 would like to call mobile device110, and the cloud 165 (e.g., cloud service provider 160) then returnsthe appropriate phone number 225 and/or mobile IP address 230 to theelectronic device 190. For instance, software that allows a user to makevoice calls over the Internet can be used to query the cloud serviceprovider 160 and download the current mobile IP address 230 in order toconnect the electronic device 190 and the mobile device 110.

Turning now to FIG. 3, a block diagram is shown of a flowchart performedby a mobile device to update connectivity information. The blocks in theflowchart may be method operations, operations performed by computerprogram code (and executed by one or more processors 120), operationsperformed in hardware (e.g., an integrated circuit configured to performthe operations), or operations performed by code in a storage medium(and suitable for causing a computer to perform the operations). Inblock 305, the mobile device 110 determines if the SIM card has beenchanged (e.g., via physical replacement or via software). For software,the software itself can determine the SIM card 135 has been changed. Forphysical replacement, a software program (as part of computer programcode 123 and executed by the processor(s) 120) can record SIM-specificinformation and determine on each startup of the mobile device 110whether the SIM-specific information has changed. Furthermore, asdescribed above, a change in SIM may be made when a SIM (e.g., asoftware or embedded SIM) allows a single one of multiple operators tobe selected by a user and the user switches from a current operator to anew operator by selecting (e.g., via software) the new operator, whichtherefore cause a switch in connectivity information.

If the SIM card 135 has changed (block 310=Yes), then the active phonenumber (corresponding to the SIM card 135 and Operator 1) is retrievedin block 313. There are a number of options to retrieve the active phonenumber: a) the mobile device 110 retrieves the information from the SIM(e.g., so the SIM or mobile device implements an application programmerinterface to allow the user to retrieve the phone number) or b) the userinterface in the mobile device 110 has information associated with SIMalready stored about the phone number (e.g., queried from user) or c) aSIM identifier, operator and phone number are pre-stored to the cloudservice provider 160 and by sending the active SIM identifier to thecloud service provider 160, the mobile device 110 can determine the newnumber (e.g., by downloading the new phone number from the cloud serviceprovider 160. In block 315, the mobile device 110 stores the changedconnectivity information to the cloud service provider 160. If the SIMcard has not been changed (block 310=No), in block 320, the mobiledevice 110 determines if the mobile device has received a new mobile IPaddress. The change in mobile IP address could be caused by the changein SIM card 135 and subsequent connection to the new operator, whichsupplies the new mobile IP address, or if the mobile device 110 isgetting back online after being offline. If a new IP address has beenreceived (block 330=Yes), then the mobile device stores the changedconnectivity information to the cloud service provider 160 in block 315.In block 330, for instance, there could be an application (e.g., as partof computer program code 123) that is online waiting for P2P(person-to-person) contact, and there is indication from lower levelsoftware that context has been changed and in this manner, the new IPaddress can be queried and informed to social networks (e.g., cloudservice provider 160). If a new mobile IP address has not been received(block 330=NO), the flowchart continues in block 305.

It is noted that FIG. 3 is written so that there are independent testsof SIM card changes or mobile IP address changes. However, these couldeasily be combined so that only one update is performed for a SIM cardchange that also causes a mobile IP address change. Furthermore, blocks305 and 320 are techniques for detecting a change in connectivityinformation for the mobile device 110, and are merely exemplary. Changesin other connectivity information may also be detected. Suchconnectivity information may include, email addresses, locationinformation, network/cellular coverage (e.g., this could provide a goodindication of the quality of the possible call), or even informationaround the user—available WLAN (wireless local area networks, Bluetoothability at the location, and the like. It should be noted that theoperator for the mobile device 110 may also be considered connectivityinformation, and a change in the operator may also be determined andstored to the cloud service provider 160.

Turning now to FIG. 4, a block diagram is shown of a flowchart performedby a cloud service provider to receive, store, and distribute updatedconnectivity information. The blocks in the flowchart may be methodoperations, operations performed by computer program code (and executedby one or more processors), operations performed in hardware (e.g., anintegrated circuit configured to perform the operations), or operationsperformed by code in a storage medium (and suitable for causing acomputer to perform the operations).

In block 405, the cloud service provider 160 receives the changedconnectivity information from the mobile device 110. In block 410, thecloud service provider 160 updates the database 217 accordingly. Inblock 420, the cloud service provider 160 sends updates for the changedconnectivity information to any subscribed friends. Updates can be sentand received, e.g., through notification APIs (application programmerinterfaces). FACEBOOK (a social utility that connects people withfriends and others who work, study and live around them) is one exampleof social network channel which may use a notification API. Block 430 isdescribed in reference to FIG. 6, and block 435 is described inreference to FIG. 7.

FIG. 5 is a block diagram of a flowchart performed by a device tosubscribe to changes in a friend's connectivity information and to useupdated connectivity information. The blocks in the flowchart may bemethod operations, operations performed by computer program code (andexecuted by one or more processors), operations performed in hardware(e.g., an integrated circuit configured to perform the operations), oroperations performed by code in a storage medium (and suitable forcausing a computer to perform the operations). In block 505, theelectronic device 190 subscribes with the cloud service provider 160 tochanges in connectivity information of friend X. Subscribing to afriend's notification on changes in social networking status, updatesand in the instant case for information of how to connect to the friend,is a mutual agreement. An example of this is as follows, but this isexemplary and not limiting. 1) First, two friends need to agreedtogether as being as friends in the same social network cloud. Then 2)both friends can agree to give and get communication availabilityinformation. This agreement “button” can be either integrated into amobile device, which then uses an API provided by a social network forthe updating agreement, and/or into a web interface of the socialnetwork. It is noted that block 505 may be performed responsive to auser of the electronic device 190 interacting with the cloud serviceprovider 160, e.g., via a website with a “subscribe to connectivityinformation updates of Friend X” function.

In block 510, the electronic device 190 receives an update for changedconnectivity information for friend X. The update could indicate a newphonebook number 250, new operator via operator indication 255, and/or anew mobile IP address 260 for mobile device 110. In block 515, theelectronic device 190 updates the phonebook 290 or other location. Inblock 520, the electronic device 190 attempts to contact friend X (i.e.,the mobile device 110) using the phonebook 290 (or other location,depending on where the connectivity information is stored).

In one example, block 520 is performed by accessing (block 525) theactive connectivity information in the phonebook or the other location.The indicator 261 (or any other technique) may be used to markconnectivity information such as the phonebook number 250-1 as active.In another example, only the active phonebook number 250 and/or mobileIP address 260 or any other connectivity information is kept in thephonebook 290. In block 530, the electronic device 190 attempts tocontact the friend X using the accessed active connectivity information,e.g., by connecting to the mobile device 110 using the phonebook number250-1 or the mobile IP address 260. Blocks 525 and 530 are based on theassumption that the active connectivity information is the correctconnectivity information. Meanwhile, FIGS. 6 and 7 provide additionalchecks to determine if there is updated connectivity information.

FIGS. 6 and 7 are block diagrams of flowcharts to attempt to contact afriend by accessing a cloud service provider for updated connectivityinformation of the friend. The blocks in the flowcharts may be methodoperations, operations performed by computer program code (and executedby one or more processors), operations performed in hardware (e.g., anintegrated circuit configured to perform the operations), or operationsperformed by code in a storage medium (and suitable for causing acomputer to perform the operations). FIG. 6 relates to an example wherethere can be a determination whether active connectivity information hasbeen updated, and subsequent downloading if the connectivity informationhas been updated. FIG. 7 relates to an example where the activeconnectivity information is simply downloaded.

Referring to FIG. 6, the electronic device 190 in block 610 determinesif an attempt is to be made to connect to friend X using connectivityinformation in the phonebook 290 (or other location). If no connectionattempt is made (block 615=No), the flowchart proceeds back to block610. Otherwise, if a connection attempt is made (block 615=Yes), inblock 620, the electronic device 190 queries the cloud service provider160 to determine if there is updated connectivity information. In block430 of FIG. 4, the cloud service provider 160, if a query is received,determines if connectivity information changed and, if changed, sendchanged connectivity information. There are many techniques possible forperforming this. For instance, the electronic device 190 can timestampthe last time active connectivity information was received, and thecloud service provider 160 can timestamp the previous change to theconnectivity information. The electronic device 190 could send itstimestamp to the cloud service provider 160 and the cloud serviceprovider 160 could determine whether or not to send updated information.Still other options are possible.

If there is updated connectivity information (block 625=Yes), theelectronic device 190 receives from the cloud service provider 160 anupdate for the changed connectivity information for friend X (block 635)and updates the phonebook 290 or another appropriate location (block645). If there is no updated connectivity information (block 625=No) orthe phonebook was updated (block 645), the electronic device 190attempts to connect to friend X (i.e., mobile device 110) using thecurrent connectivity information.

Referring now to FIG. 7, most of the blocks in this flowchart have beendescribed in reference to FIG. 6, so only the difference are describedhere. In block 720, the electronic device 190 request and downloadsactive connectivity information from the cloud service provider 160. Inblock 435 of FIG. 4, the cloud service provider 160, if a request forcurrent connectivity information is received, sends the activeconnectivity information to the electronic device 190. In block 725 ofFIG. 7, the electronic device 190 determines if there is updatedconnectivity information, e.g., by comparing the received connectivityinformation with the connectivity information in the phonebook 290. InFIG. 7, there is no block 635, as the electronic device 190 has alreadyreceived the active connectivity information in block 720.

Turning to FIG. 8, a block diagram is shown of a flowchart performed bya device to use other connectivity information instead of the currentlyactive connectivity information to contact friend X. The blocks in theflowchart may be method operations, operations performed by computerprogram code (and executed by one or more processors), operationsperformed in hardware (e.g., an integrated circuit configured to performthe operations), or operations performed by code in a storage medium(and suitable for causing a computer to perform the operations). FIG. 8allows an electronic device 190 to use connectivity information otherthan the currently selected active connectivity information, e.g., ifthere is an error connecting using the active connectivity information.This embodiment assumes multiple entries 240 in the phonebook 290.

In block 810, the electronic device 190 determines if there is an errorconnecting to friend X using the currently selected connectivityinformation. The first time block 810 is performed, the currentlyselected connectivity information is the active connectivityinformation. If there is no error (block 815=No), the flowchart ends inblock 840. If there is an error (block 815=Yes), the electronic device190 prompts the user to determine if user agrees to use differentconnectivity information to reattempt to contact friend X. FIG. 9 is anexample of an electronic device 190 with a prompt on a touch screen 900.The example of FIG. 9 is for a mobile phone number (e.g., 250 fromphonebook 290). The user would select either Yes or No. It is noted thatthere could be a preconfigured setting that the mobile device (e.g.,electronic device 190) performs a connection automatically to a numberwhich was last updated (i.e., rather than displaying the message in FIG.9).

Based on the response of the user, block 825 will be either Yes (e.g.,the user selected Yes in FIG. 9) or No (e.g., the user selected No inFIG. 9). If the user agrees to use different connectivity information(CI) (block 825=Yes), the electronic device 190 retrieves different(e.g., previously active) connectivity information from the phonebook290 (or other location). In block 835, the electronic device 190attempts to contact friend X using the selected connectivity informationand the flowchart proceeds to block 810. If the user does not agree touse the different connectivity information (block 825=No), the flowchartends in block 840.

Referring now to FIG. 10, is an example of a block diagram of aflowchart performed by a device to use preferences for operators forboth a user and a user's friend. As explained above in reference to FIG.2, preference(s) 293 for the mobile device 110 are preferences of theuser of the mobile device 110. Meanwhile, the user of the mobile device190 may also have a preference 294 of a preferred operator (OP 2). Thesepreferences may adjust the order and possibly override the order inwhich connectivity information such as phone numbers are used by themobile device 190 when the mobile device 190 attempts to contact themobile device 110.

In particular, in FIG. 10, in block 1010, it is determined if the callerhas an order of preference of an operator. In the example of FIG. 2, thepreference 294 of the caller (i.e., the user of mobile device 190 inthis example) is for operator 2 (OP 2). If there is no preference (block1015=No), the flowchart proceeds to block 1025. If there is a preference(block 1015=Yes), then in block 1020, if the SIM of the receiver (i.e.,mobile device 110 in this example) is on the preferred operator, then acall is performed using the preferred operator and a phone number of themobile device 110 corresponding to the preferred operator. In theexample of FIG. 2, the SIM of the receiver is on operator 1 225-1, whichis not the preferred operator 294. Therefore, the flowchart would passto block 1040 (where no call is placed, so the flowchart would proceedto block 1025). However, in an optional example, in block 1030, if theSIM of the receiver not on the preferred operator, the user is queriedto change the SIM 138 (see FIG. 2) of the mobile device 190, if thereceiver operator is the same as the operator on one of the caller'sSIMs. The SIM 138 in the mobile device 190 is changed, if the calleragrees, and an attempted call is made using the new SIM. The flowchartpasses to block 1040, where if the call goes through (block 1040=Yes),the flowchart ends in block 1045; otherwise (block 1040=No), theflowchart proceeds to block 1025.

In block 1025, the mobile device 190 switches to preference(s) (e.g.,293) of the receiver. For instance, if the receiver prefers PB No. 1(phonebook number 1), then PB No. 2, an attempt to call the receiver ismade using PB No. 1, and if the call fails, an attempt to call thereceiver is made using PB No. 2. If these calls fail, block 1035 isperformed, and other numbers in the phonebook are used until a call goesthrough or all numbers are tried, whereupon the flowchart ends in block1045.

Embodiments of the present invention may be implemented in software(executed by one or more processors), hardware (e.g., an applicationspecific integrated circuit), or a combination of software and hardware.In an example embodiment, the software (e.g., application logic, aninstruction set) is maintained on any one of various conventionalcomputer-readable media. In the context of this document, a“computer-readable medium” may be any media or means that can contain,store, communicate, propagate or transport the instructions for use byor in connection with an instruction execution system, apparatus, ordevice, such as a computer, with one example of a computer described anddepicted, e.g., in FIG. 1. A computer-readable medium may comprise acomputer-readable storage medium (e.g., memory 125, 171, 195 or otherdevice) that may be any media or means that can contain or store theinstructions for use by or in connection with an instruction executionsystem, apparatus, or device, such as a computer.

Without in any way limiting the scope, interpretation, or application ofthe claims appearing below, a technical effect of one or more of theexample embodiments disclosed herein is to use a cloud-based in order toallow a user to be contacted after connectivity information has changeddue to a change in operators via a SIM change. Another technical effectis to provide a friend of a user with updates of connectivityinformation. Another exemplary technical effect is to provide a servicethat received updates in connectivity information from a user and sendsthe updates to other users subscribed to receive updates for the users.

If desired, the different functions discussed herein may be performed ina different order and/or concurrently with each other. Furthermore, ifdesired, one or more of the above-described functions may be optional ormay be combined.

Although various aspects of the invention are set out in the independentclaims, other aspects of the invention comprise other combinations offeatures from the described embodiments and/or the dependent claims withthe features of the independent claims, and not solely the combinationsexplicitly set out in the claims.

It is also noted herein that while the above describes exampleembodiments of the invention, these descriptions should not be viewed ina limiting sense. Rather, there are several variations and modificationswhich may be made without departing from the scope of the presentinvention as defined in the appended claims.

What is claimed is:
 1. An apparatus, comprising: one or more processors;and one or more memories including computer program code, the one ormore memories and the computer program code configured, with the one ormore processors, to cause the apparatus to perform at least; detectingat a mobile device that there is a change in connectivity information ofa subscriber identity module card of the mobile device, the connectivityinformation comprising information allowing a connection of anotherdevice via a network to the mobile device while the mobile device iswirelessly connected to the network, wherein the detecting is based onthe subscriber identity module card for the mobile device using thechanged connectivity information instead of using connectivityinformation previously active for a connection of the mobile device withthe another device via the network, and wherein the connectivityinformation is indicating a change of a preferred operator to use toallow a connection of the another device via the network to the mobiledevice; updating by the mobile device, stored information comprising achanged phonebook number of the another device and the changed preferredoperator based on the changed connectivity information of the subscriberidentity module card to allow a connection of the another device to themobile device while the mobile device is wirelessly connected to thenetwork; and enabling, by the mobile device, establishment of aconnection with the another device via the network using the changedconnectivity information and the changed preferred operator associatedwith the changed connectivity information of the subscriber identitymodule card.
 2. The apparatus of claim 1, wherein the determined changein the connectivity information is based on the subscriber identitymodule card for the mobile device being replaced with a new subscriberidentity module card by a user of the mobile device.
 3. The apparatus ofclaim 1, wherein the enabling comprises sending by the mobile device toa cloud service provider associated with the network the updated storedinformation comprising the changed phonebook number and the changedpreferred operator corresponding to the new subscriber identity modulecard.
 4. The apparatus of claim 3, wherein the detecting the change inconnectivity information of a subscriber identity module card of amobile device is based on an indication of the changed connectivityinformation being passed through the mobile device from the network tothe another device, wherein the pass through the mobile device from thenetwork is based on the stored information sent from the mobile deviceto the cloud service provider is including the changed phonebook number.5. The apparatus of claim 1, wherein the subscriber identity module cardenables a single one of multiple operators including the changedpreferred operator to be selected by a user of the mobile device.
 6. Theapparatus of claim 3, wherein: the change in connectivity informationcomprises a change in a mobile Internet protocol address of the mobiledevice to a different mobile Internet protocol address; and wherein theinformation sent by the mobile device to the cloud service providercauses a list of more than one subscriber identity module card stored ina database of the network to use the changed phonebook number and thechanged preferred operator associated with the changed connectivityinformation of the another device and to indicate the different mobileInternet protocol address of the mobile device.
 7. The apparatus ofclaim 6, wherein performing the update further comprises updating thedatabase of the network to indicate at least an identity of a userassociated with the mobile device.
 8. The apparatus of claim 3, whereinthe sending by the mobile device to the cloud service providerassociated with the network the updated stored information causes thecloud service provider to provide the changed connectivity informationto other mobile devices of the network associated with the mobiledevice.
 9. The apparatus of claim 3, wherein the update of the liststored in the database of the network and the phonebook number of theanother device is performed using an application programmer interface.10. The apparatus of claim 1, wherein the updating of the phonebook ofthe another device is performed using an application programmerinterface.
 11. The apparatus of claim 1, wherein responsive to theupdating, an indication of the change in connectivity information issent to all users subscribed in the network as friends of mobileterminal.
 12. An method, comprising: detecting, by a mobile device, thatthere is a change in connectivity information of a subscriber identitymodule card of the mobile device, the connectivity informationcomprising information allowing a connection of another device via anetwork to the mobile device while the mobile device is wirelesslyconnected to the network, wherein the detecting is based on thesubscriber identity module card for the mobile device using the changedconnectivity information instead of using connectivity informationpreviously active for a connection of the mobile device with the anotherdevice via the network, and wherein the connectivity information isindicating a change of a preferred operator to use to allow a connectionof the another device via the network to the mobile device; updating, bythe mobile device, stored information comprising a changed phonebooknumber of the another device and the changed preferred operator based onthe changed connectivity information of the of the subscriber identitymodule card to allow a connection of the another device to the mobiledevice while the mobile device is wirelessly connected to the network;and enabling, by the mobile device, establishment of a connection withthe another device via the network using the changed connectivityinformation and the changed preferred operator associated with thechanged connectivity information of the subscriber identity module card.13. The method of claim 12, wherein the detected change in theconnectivity information is based on the subscriber identity module cardfor the mobile device being replaced with a new subscriber identitymodule card by a user of the mobile device.
 14. The method of claim 12,wherein the enabling comprises sending by the mobile device to a cloudservice provider associated with the network the updated storedinformation comprising the changed phonebook number and the changedpreferred operator corresponding to the new subscriber identity modulecard.
 15. The method of claim 12, wherein the subscriber identity modulecard enables a single one of multiple operators including the changedpreferred operator to be selected by a user of the mobile device. 16.The method of claim 14, wherein: the change in connectivity informationcomprises a change in a mobile Internet protocol address of the mobiledevice to a different mobile Internet protocol address; and wherein theinformation sent by the mobile device to the cloud service providercauses a list of more than one subscriber identity module card stored ina database of the network to use the changed phonebook number and thechanged preferred operator associated with the changed connectivityinformation of the another device and to indicate the different mobileInternet protocol address of the mobile device.
 17. The method of claim16, wherein performing the update further comprises updating thedatabase of the network to indicate at least an identity of a userassociated with the mobile device.
 18. The method of claim 12, whereinthe enabling comprises sending by the mobile device to a cloud serviceprovider associated with the network the updated stored informationcomprising the changed phonebook number and the changed preferredoperator corresponding to the new subscriber identity module card. 19.The method of claim 18, wherein the sending by the mobile device to thecloud service provider associated with the network the updated storedinformation causes the cloud service provider to provide the changedconnectivity information to other mobile devices of the networkassociated with the mobile device.
 20. The method of claim 14, whereinthe updating the list stored in the database of the network with thechanged phonebook number and the changed preferred operator is performedusing an application programmer interface of the mobile device.
 21. Acomputer program product embodied in a non-transitory computer memoryand comprising instructions wherein the instructions are executed by aprocessor to perform operations that comprise: detecting at a mobiledevice that there is a change in connectivity information of asubscriber identity module card of the mobile device, the connectivityinformation comprises information allowing a connection of anotherdevice via a network to the mobile device while the mobile device iswirelessly connected to the network, wherein the detecting is based onthe subscriber identity module card for the mobile device using thechanged connectivity information instead of using connectivityinformation previously active for a connection of the mobile device withthe another device via the network, and wherein the connectivityinformation is indicating a preferred operator to use to allow aconnection of the another device via the network to the mobile device;updating, by the mobile device, the connectivity information and aphonebook number of the another device to include the changedconnectivity information to allow the another device to connect to themobile device while the mobile device is wirelessly connected to thenetwork; and based on the updating, enabling, by the mobile device,establishment of a connection with the another device via the networkusing the changed connectivity information and the changed preferredoperator associated with the changed connectivity information of thesubscriber identity module card.
 22. The computer program productaccording to claim 21, wherein the enabling comprises sending by themobile device to a cloud service provider associated with the networkthe changed phonebook number and the changed preferred operatorcorresponding to the subscriber identity module card.